﻿using System;
using System.Collections;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

public partial class GestionarPracticas_FrRegPractica : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        //-------------------------Lineas Agregadas para la seguridad----------------------------------------------------
        if (Session["nomUsr"] != null)
        {
            List<String> Permisos = (List<String>)Session["Permisos"];

            if (!Permisos.Contains(System.IO.Path.GetFileName(HttpContext.Current.Request.FilePath)))
                Response.Redirect("/SUEWebSite/Error.aspx");

        }
        else Response.Redirect("/SUEWebSite/Principal.aspx");

        //Verifico si recibi un idSolicitud por la url
        if (Request.QueryString["idSolicitudPractica"] != null)
        {
            SolicitudPractica sol = new SolicitudPractica();
            try {
                int idSolicitud = Convert.ToInt32(Request.QueryString["idSolicitudPractica"].ToString());
                sol = sol.ObtSolicitudPorId(idSolicitud);
                if (sol.ObtIdSolicitudPractica() == 0)
                    ButtonRegistrar.Enabled = false;
            }
            catch
            {
                //no se envio un entero.
            }
        }

        if (!Page.IsPostBack)
        {
            CargarProgramasAcademicos();
            CargarPeriodosPracticas();
        }
    }

    protected void CalendarFechaInicio_SelectionChanged(object sender, EventArgs e)
    {
        CalendarFechaInicio.Visible = false;

    }

    /// <summary>
    /// se quitan las fechas del formulario que no correspondan al mes actual   
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void CalendarFechaInicio_DayRender(object sender, DayRenderEventArgs e)
    {
        if (e.Day.IsOtherMonth)
        {
            e.Cell.Text = "";

        }



    }

    protected void CargarPeriodosPracticas()
    {
        GestionarPeriodosPracticas gp = new GestionarPeriodosPracticas();
        DataTable periodos = gp.BusquedaAvanzada("activo","");

        if(periodos.Rows.Count>1)
            ScriptManager.RegisterStartupScript(this, this.GetType(), "myscript", "$.modaldialog.success('Existe más de un periodo de prácticas activo!. <br /><div align=\"center\"><a href=\"../GestionarPeriodosPracticas/FrConsPeriodosPracticas.aspx\"><img src=\"../images/ok2.png\"/></a></div>');",true);

        foreach (DataRow row in periodos.Rows)
            DropDownListPeriodo.Items.Add(new ListItem(row["nombrePeriodo"].ToString(), row["idPeriodo"].ToString()));
        DropDownListPeriodo.SelectedIndex = -1;
    }

    protected void CargarProgramasAcademicos()
    {
        Programa tmp = new Programa();
        List<Programa> programas= tmp.consultarProgramas();
        foreach (Programa prog in programas)
        {
            DropDownListPrograma.Items.Add(new ListItem(prog.ObtNombre()));
        }
        DropDownListPrograma.SelectedIndex = -1;
    }

    protected void ButtonCancelar_Click(object sender, EventArgs e)
    {
        string idSolicitudPractica = Request.QueryString["idSolicitudPractica"];
        Response.Redirect("../SolicitudesPractica/FormEditarSolicitud.aspx?idSolicitudPractica=" + idSolicitudPractica);
    }

    protected void ButtonRegistrar_Click(object sender, EventArgs e)
    {
        int idSolicitud = Convert.ToInt32(Request.QueryString["idSolicitudPractica"].ToString());
        int periodo = Convert.ToInt32(DropDownListPeriodo.SelectedValue);
        string programa = DropDownListPrograma.SelectedValue;
        string estado = DropDownListEstado.SelectedValue;
        string observaciones = TextBoxObservaciones.Text;
        string fechaInicio;
        if (CalendarFechaInicio.SelectedDate.ToShortDateString() != "01/01/0001")
            fechaInicio = CalendarFechaInicio.SelectedDate.ToShortDateString();
        else
            fechaInicio = "";
        string fechaCierre;
        if (CalendarFechaCierre.SelectedDate.ToShortDateString() != "01/01/0001")
            fechaCierre = CalendarFechaCierre.SelectedDate.ToShortDateString();
        else
            fechaCierre = "";

        if (CalendarFechaInicio.SelectedDate < CalendarFechaCierre.SelectedDate)
        {
            GestionarPracticas gp = new GestionarPracticas();
            if (gp.CrearPractica(idSolicitud, periodo, programa, observaciones, estado, fechaInicio, fechaCierre))
                ScriptManager.RegisterStartupScript(this, this.GetType(), "myscript", "$.modaldialog.success('La práctica para la solicitud específica ha sido creada! <br /><div align=\"center\"><a href=\"../SolicitudesPractica/FormEditarSolicitud.aspx?idSolicitudPractica=" + idSolicitud + "\"><img src=\"../images/ok2.png\"/></a></div>');", true);
            else
                ScriptManager.RegisterStartupScript(this, this.GetType(), "myscript", "$.modaldialog.error('No se pudo crear', {timeout: 4 , showClose: false });", true);
        }
        else
            ScriptManager.RegisterStartupScript(this, this.GetType(), "myscript", "$.modaldialog.error('La fecha de inicio es mayor que la fecha de cierre!', {timeout: 4 , showClose: false });", true);
    }
}
